专利摘要:
アプリケーションにおける処理による拡張コードの分離が記載される。実施例において、ネットワークを介して受信されたコンテンツを含む1つ以上の処理の実行は、1つ以上の処理を含む単一のアプリケーションの別の処理によって管理される。当該管理は、反応しない場合に1つ以上の処理を終了することを含む。1つ以上の処理が反応しない場合に他の処理が反応するままであるように、1つ以上の処理の実行は他の処理から分離される。その後、終了した1つ以上の処理においてコンテンツが回復される。
公开号:JP2011510380A
申请号:JP2010542306
申请日:2009-01-06
公开日:2011-03-31
发明作者:ウッズ,ショーン・エム;プライティス,エドワード・ジェイ;ルズィスキ,デーヴィッド・エム
申请人:マイクロソフト コーポレーション;
IPC主号:G06F21-22
专利说明:

[0001] 本発明は、アプリケーションにおける処理によるコンテンツの分離に関する。]
背景技術

[0002] アプリケーションは多種多様のコンテンツを消費するように構成され得る。例えば、ブラウザー・アプリケーションは、ウェブ・ページ、音楽、オンライン・ビデオなどのような、ネットワークを介して利用可能な多種多様の異なるコンテンツにナビゲートするように構成されてもよい。このインターネット・コンテンツはしばしば信頼できず及び/又は信頼性が低く、したがって、その実行は資源(リソース)の使用及びアクセス制御の両方において抑制されるべきである。いくつかの例では、このコンテンツは、ブラウザー・アプリケーション自体の機能を拡張するためのものである拡張コードとして構成されてもよく、それは「プラグ・イン」、「第三者(third-party)プラグ・イン」、「アドオン」などと呼ばれることがある。しかし、この拡張コードは、障害と言えるほどに、ブラウザー・アプリケーション自体の実行に対して悪影響を有し得る。拡張コードはまた、生じることをユーザーが望まない動作を実行することを試みることもある。]
発明が解決しようとする課題

[0003] ブラウザー・アプリケーションは、例えば、ブラウザー・アプリケーションの機能を拡張するために第三者プラグ・インを受け取ってもよい。しかし、それは「第三者」のプラグ・インであるので、ブラウザー・アプリケーションのプログラマー(ライター、writer)の標準を満たさない品質標準によって書かれているかもしれない。例えば、ブラウザー・アプリケーションと共に実行されるとき、プラグ・インは機能しないかもしれない。プラグ・インはブラウザー・アプリケーションと資源を共有し得る拡張コードであるので、プラグ・インの不具合は、クラッシュ、「ハング」など、ブラウザー・アプリケーションの不具合を引き起こし得る。]
課題を解決するための手段

[0004] アプリケーションにおける処理(プロセス、processes)によるコンテンツの分離(isolation)が記載される。実施例において、1つ以上の処理を含む単一のアプリケーションの別の処理によってネットワークを介して受信されるコンテンツを含む当該1つ以上の処理の実行が管理される。当該管理は、反応(応答)しないか、失敗したか、そうでなければ適切に実行しない場合に、1つ以上の処理を終了すること又は再開することを含む。1つ以上の処理が反応しない場合に他の処理が反応する状態のままであるように、1つ以上の処理の実行は当該他の処理から分離される。その後、終了した1つ以上の処理におけるコンテンツは回復される。したがって、1つ以上の処理の実行は、それを実行するインターネット・コンテンツ・ソース及びユーザーの方針に基づいて、そのクライアント側の同一性(identity)及びアクセス制御が指定され制限され得るように、他の処理から分離されてもよい。その後、インターネットからのコンテンツの実行は、インターネット・ソースに特有でありローカル・クライアント・ユーザーの同一性に基づいて適用されるインターネット・ソースを超えるクライアント・オペレーティング・システム同一性及び/又はアクセス制御制限によって制御され得る。]
[0005] 別の実施例において、1つ以上のコンピューター読み取り可能な媒体は、1つ以上のタブ処理及びフレーム処理を有するブラウザー・アプリケーションを提供するために実行可能な命令を含む。1つ以上のタブ処理はネットワークを介して受信されたコンテンツを含み、その結果、各タブ処理はそれぞれのコンテンツを互いから分離する。フレーム処理は1つ以上のタブ処理の実行を管理する。タブ処理の少なくとも1つは、フレーム処理が少なくとも1つのタブ処理に含まれるコンテンツにとって利用可能でない1つ以上の資源へのアクセスを有するように、フレーム処理より低い信頼レベルを割り当てられる。]
[0006] この概要は詳細な説明においてさらに以下に述べられる概念の選択を単純化された形式で紹介するために提供される。この概要は、特許請求された主題の主な特徴又は不可欠な特徴を特定するようには意図されず、特許請求された主題の範囲の決定に助けとして使用されるようにも意図されない。]
[0007] 詳細な説明は添付の図面に関して記載される。図面において、参照番号のもっとも左端の数字はその参照番号が最初に現われる図を識別する。詳細な説明と図面における異なる例での同じ参照番号の使用は、類似の又は同一の項目を示してもよい。]
図面の簡単な説明

[0008] 分離技術を使用するように動作可能な例示的な実施例における環境の図である。
アプリケーション・インフラストラクチャーを形成するために使用され得るコンポーネントを示すアーキテクチャーの図である。
ブラウザー・アプリケーションの層へ組織化されるように例示的な分離インフラストラクチャーを描く図である。
図2及び図3のコンポーネントにより実施されるようなフレーム処理及びタブ処理の例示的な実施例の図である。
コンテンツを分離する1つ以上の処理の実行が別の処理によって管理される例示的な実施例における手続を描くフロー図である。] 図2 図3
実施例

[0009] 概要
ネットワークを介して得られたコンテンツを実行する様々な異なるアプリケーションは、インターネットから供給されるコンテンツを動的にロードし実行することにより拡張されてもよい。このコンテンツは「ホストされた」コード及び「在来の(ネイティブ、native)」コードの両方を含み得るが、各場合において、それはホストマシンに対する指示の実行を引き起こす。このコンテンツは、HTMLなどの「インターネットサイトに特有の」コードだけでなく、様々なもしくはすべてのインターネットサイト・コンテンツ又はローカル・マシン資源において実行されるよう意図される「プラグ・イン」、「アドオン」、「ドライバー」などを含み得る「拡張コード」をも含む。]
[0010] 拡張コードは、標準のインターネット・アクセス制御機構又は信頼性制御機構なしに実行する「ネイティブ・コード(native code)」としてしばしば提示される。それは品質と信頼性の程度が変化するものである。さらに、拡張コードは、資源(例えば、メモリー、ハンドル、処理空間など)を、拡張コードをホストするアプリケーションと共有してもよい。したがって、拡張コードの不具合はまた、アプリケーションの不具合を引き起こすことがあり(例えば、アプリケーションを「クラッシュ」させたり、「ハング」させたりする)、資源の非効率的な消費を引き起したり、セキュリティー違反に帰着したりすることがある。]
[0011] アプリケーションにおける処理によってネットワークを介して受信されるコンテンツ(例えば、インターネット・コンテンツ)の分離が記載される。実施例において、処理はインターネット・コンテンツの実行を分離するために使用される。例えば、インターネット・ブラウザー・アプリケーションは、ウェブ・ページを通じてナビゲートするための「戻る」ボタン及び「進む」ボタン、入力としてユニフォーム・リソース・ロケーター(URL)アドレスを受け入れるアドレス・バーなどを含むブラウザー自体の機能の形式及び制御などの、ブラウザーの基礎機能を管理することに関与するフレーム処理(したがって、さらに以下の説明において「マネージャー処理」と呼ばれる)を含むように構成され得る。]
[0012] ブラウザー・アプリケーションはまた、ブラウジングによってブラウザー・アプリケーション自体の基本的な機能から受け取られるコンテンツを分離するために使用される処理(したがって、さらに以下の説明において「分離処理」と呼ばれる)をサポートしてもよい。これらの処理は、例えば、各々が別個の処理において実行されるブラウザー・アプリケーション内のタブとして表示されてもよい。フレーム処理はタブ処理の実行を管理するために実行されてもよく、分離のために、タブ処理の1つ以上が機能しなくなる(例えば、反応しなくなる)場合、フレーム処理は、意図されるように実行するほか、失敗しなかった他のタブ処理とともに実行することを続けてもよい。さらに、フレーム処理は、反応がないタブ処理を終了して当該タブ処理において実行されたコンテンツをその後に回復するなどのために、1つ以上の修正処置(corrective actions)をとってもよい。様々な他の例もまた考慮され、それらについてのさらなる議論が以下の図面に関してなされる。]
[0013] 別の実施例において、コンテンツのアクセス制御及び同一性を抑制するために、分離技術は「信頼判断(trust judgment)」と共に使用され得る。以前に説明されたように、拡張コードを含むインターネットから供給されたコンテンツは、ユーザー又はローカル・クライアントの利益にならない目標を達成する目的で意図をもって書かれることもある。したがって、コンテンツに対する信頼の判断は、例えば、コンテンツのソースについての知識を使用して、又は、それぞれのコンテンツに対して「同一性及びアクセス制御」のレベルを割り当てるために使用されるコンテンツを識別及び/又は受信するために使用される手段を使用してなされてもよい。信頼判断は、拡張コードを実行するコンピューターの資源へのアクセスの基礎として使用されてもよい。しかし、従来の技術は、「アプリケーションごとに」実行された。例えば、異なる信頼性を有するウェブ・コンテンツとインタラクトするために、複数のブラウザー・アプリケーションが実行され、それはクライアント・オペレーティング・システム・アクセス制御及び同一性を適用せず、資源が非効率であり、有用性の見地からユーザーにとっていらいらさせられ混乱させられるものであり得た。信頼についての一層の議論は以下の図に関してなされる。]
[0014] 以下の説明では、分離技術を使用するように動作可能な例示的な環境がまず説明される。その後、例示的な環境のほか、他の環境においても使用され得る例示的な手続が説明される。いくつかの例では、ブラウザー・アプリケーションは分離技術を使用するものとして記載されるが、インターネット・コンテンツを実行する様々な他のアプリケーションはまた、気象情報、ヘッドライン、オンライン・ビデオなどの追加の機能を提供するために、コンピューターのデスクトップ上で第三者拡張コードを(例えば、サイドバー中で)実行する「ガジェット(gadgets)」アプリケーションなど、これらの技術を使用してもよい。
例示的な環境
図1は、分離技術を使用するように動作可能な例示的な実施例における環境100の図である。図示された環境100は、ネットワーク106を介して互いに通信で結合される複数のコンテンツ・プロバイダー102(1)−102(M)及びコンピューター104を含む。コンピューター104は様々な方法で構成されてもよい。例えば、コンピューター104は、デスクトップ・コンピューター、移動局、娯楽電化製品、ディスプレイ装置に通信で接続されたセットトップ・ボックス、無線電話、ゲーム機などのように、ネットワーク106を介して通信するように構成されてもよい。] 図1
[0015] ネットワーク106はインターネットとして示されるが、ネットワークは多種多様の構成を仮定してもよい。例えば、ネットワーク106は、広域ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、ワイヤレス・ネットワーク、公衆電話網、イントラネットなどを含んでもよい。さらに、単一のネットワーク106が示されるが、ネットワーク106は複数のネットワークを含むように構成されてもよい。]
[0016] 複数のコンテンツ・プロバイダー102(1)—102(M)の各々は、ネットワーク106を介してコンピューター104へそれぞれのコンテンツ110(c)、112(k)(「c」及び「k」はそれぞれ1と「C」及び「K」との間の整数であってもよい)を提供するための機能を表すそれぞれのコンテンツ・マネージャー・モジュール108(l)−108(M)を含むものとして示される。コンテンツは様々な方法で構成されてもよい。例えば、コンテンツ112(k)は、ウェブ・ページ114、スクリプト116、拡張コード118などとして構成されてもよい。]
[0017] コンピューター104はプロセッサー120及びメモリー122を含むものとして示される。プロセッサーは、それが形成される材料又はそれに使用される処理機構によって限定されない。例えば、プロセッサーは、半導体及び/又はトランジスター(例えば、電子集積回路(IC))で構成されてもよい。そのような状況では、プロセッサーにより実行可能な命令は電子的に実行可能な命令であってもよい。代替的に、プロセッサーの又はプロセッサーのための、及びしたがって計算装置の又は計算装置のための機構は、量子計算、光学コンピューティング、機械的コンピューティング(例えば、ナノテクノロジーを使用するもの)などを含んでもよいがこれらに限定されない。さらに、単一のメモリー122が示されるが、ランダム・アクセス・メモリー(RAM)、ハードディスクメモリー、取り外し可能な媒体メモリー及び他の種類のコンピューター読み取り可能な媒体などの、多種多様の種類のメモリー及びそれらの組み合わせが使用され得る。]
[0018] コンピューターはまた、メモリー122に格納できるアプリケーション124をプロセッサー120上で実行するものとして示される。アプリケーション124は、ブラウザー・アプリケーション(そのさらなる説明は図3に関してなされる)、生産性(productivity)アプリケーションなどの多種多様の機能を提供するように構成されてもよい。] 図3
[0019] 例として、アプリケーション124は、マネージャー処理及び分離処理の使用を通じてコンポーネントを互いに分離するために、オペレーティング・システム・プリミティブ(primitives)(例えば、処理)を使用し得る、コンポーネント・モデル及び分離インフラストラクチャーに従ってもよい。分離インフラストラクチャーなどの例は、マネージャー処理の例であるフレーム処理126及び分離処理の例である複数のタブ処理128(1)−128(T)を含むアプリケーション124について示される。フレーム処理126は、コンピューター104の資源(例えば、プロセッサー120及び/又はメモリー122)の「どこで」タブ処理128(1)—128(T)が実行及び/又は保持されるべきかを決定し、タブ処理128(1)—128(T)の寿命及び応答性を監視し、タブ処理128(1)−128(T)を終了し、それぞれのタブ処理128(1)−128(T)が機能しない場合にそれぞれのコンテンツ112(I)−112(T)を回復するためなどのように、タブ処理128(1)−128(T)を管理するための機能を代表する。したがって、それぞれのタブ処理128(1)—128(T)におけるコンテンツ112(1)—112(T)の実行は、フレーム処理126の実行と干渉せず、それによって、タブ処理128(1)—128(T)及び含まれるコンテンツ112(I)−112(T)の1つ以上が反応しない場合でさえ、フレーム処理126の応答性を維持する。これについてのさらなる議論は図4に関して最初になされる。追加の実施例において、処理の分離によって達成されたこの分離は、さらに、1つのタブ処理128(1)におけるコンテンツ112(1)が単一のアプリケーション(例えば、アプリケーション124)で別のタブ処理128(T)におけるコンテンツ112(T)と干渉しないようにする。] 図4
[0020] 分離インフラストラクチャーなどの分離技術はまた、様々な他の機能をサポートしてもよい。例えば、それぞれのタブ処理128(1)—128(T)におけるコンテンツ112(I)−112(T)の分離は、単一のアプリケーションによる異なる「信頼」レベルの使用を可能にし得る。タブ処理128(1)において実行されるコンテンツ112(1)は、例えば、フレーム処理126に割り当てられる信頼レベルより低い信頼レベルを割り当てられてもよい。したがって、フレーム処理126は、タブ処理128(1)におけるコンテンツ112(1)によってアクセスされることが許されない追加の資源(例えば、オペレーティング・システムなどのソフトウェア及び/又は共有メモリーなどのハードウェア)にアクセスすることを許可されてもよい。同様に、タブ処理128(1)におけるコンテンツ112(1)は、タブ処理128(T)におけるコンテンツ112(T)とは異なる信頼レベルを割り当てられ、同じアプリケーション124内の異なる資源へアクセスしてもよい。信頼レベルについてのさらなる議論は図5に関して開始される以下の説明においてなされる。] 図5
[0021] 単一のアプリケーションによる処理の使用は様々な他の機能をサポートしてもよい。例えば、当該処理は、タブ処理128(1)—128(T)の1つ以上が32ビットで動作する一方でフレーム処理126が64ビットで動作したり、タブ処理128(1)—128(T)が(互いに)異なる帯域幅で動作したりしてもよいように、異なる量の「ビット」を扱うように構成されてもよい。様々な他の例もまた考慮され、これについてのさらなる議論は以下の図に関してなされる。]
[0022] 一般に、本明細書に記載された機能のうちのいずれも、ソフトウェア、ファームウェア(例えば、固定論理回路)、手動処理又はこれらの実施の組み合わせを使用して実施することができる。本明細書において使用される用語「モジュール」、「機能」及び「論理」は、一般に、ソフトウェア、ファームウェア又はソフトウェアとファームウェアの組み合わせを表す。ソフトウェアによる実施の場合には、モジュール、機能又は論理は、プロセッサー(例えば、CPU)上で実行されるときに指定されたタスクを行うプログラム・コードを表す。プログラム・コードは1つ以上のコンピューター読み取り可能なメモリー装置(例えば、図1のメモリー122)に格納することができる。以下に述べられる分離技術の特徴はプラットフォームに依存しないことであり、これは、様々なプロセッサーを有する様々な商用コンピューティング・プラットフォーム上で当該技術が実施できることを意味する。] 図1
[0023] 図2は、アプリケーション・インフラストラクチャーを形成するために使用され得るコンポーネント202及び204を示すアーキテクチャー200を図示する。アーキテクチャー200は、アプリケーション機能の基板(substrate)としての役割を果たす分離インフラストラクチャー(ISO)を提供してもよい。ISOは、アプリケーション・コードから、再使用され得る個別のサブシステムへと分割される。例えば、それらは、異なるアプリケーション機能によって複数回使用されてもよく、また、ISOの正確さ、セキュリティー及び信頼性を直接テストできるようにテストをするために使用されてもよい。] 図2
[0024] 例えば、ISOは非同期通信を可能にするように設計されてもよい。コンポーネント・オブジェクト・モデル(COM)は、例えば、全二重機構であり、したがって、半二重通信をサポートしない。別の例において、ISOは、アーティファクト(artifacts)について異なるレベルの信頼をサポートし、アーティファクトの信頼レベルについての知識を保証し、その信頼レベルを検出するための能力を提供してもよい。さらなる例において、アーティファクトの位置は、スレッドの工程内(インプロセス)(in-process-in-thread)、工程/異なるスレッド内(in-process/different thread)、異なる処理、異なる強制インテグリティ・レベル/部分(コンパートメント)などの間で変化し得る。さらに別の例において、ISOは、ISOのアプリケーション・プログラム・インターフェース(API)の「下の」実施の変化及び拡張を可能にしてもよい。]
[0025] ISOのアーキテクチャー200の基本単位は「コンポーネント」と見なすことができ、その例は、図2のアーキテクチャー200のコンポーネント202及びコンポーネント204として示される。コンポーネントは位置及びメッセージの単位(ユニット)と見なされてもよい。図2の説明において、コンポーネント202及び204は、WINDOWS(登録商標)(WINDOWSはワシントン州レドモンドのマイクロソフト株式会社の商標である)メッセージループ206及び208を有する。コンポーネント202及び204は、それぞれのスレッド210及び212「上で」及びそれぞれの処理214及び216(例えば、WINDOWS処理)「において」存在しているものとしてさらに示される。別個に示されているが、それぞれのスレッド210及び212はそれぞれの処理214及び216「内に」存在してもよい。] 図2
[0026] 様々な異なる種類の通信がコンポーネント202、204の間でサポートされてもよい。例えば、コンポーネントはメッセージループを介して非同期メッセージ218を使用して通信してもよい。別の例において、区画間(cross-apartment)の同期COM(コンポーネント・オブジェクト・モデル)呼(呼び出し)は、COMオブジェクト220を使用して実施されてもよい。実施例において、COMオブジェクトを呼び出すことによりオブジェクトを入力又は一時中断してもよいように、コンポーネント202及び204はCOM区画(COM apartments)において実施されてもよい。さらなる例において、共有バッファー222は、例えば、データをストリーミングするために使用され得る。さらに他の例もまた考慮される。]
[0027] 図3は、ブラウザー・アプリケーション302のための層へと組織化されるような例示的な分離インフラストラクチャー300を図示する。図3のブラウザー・アプリケーション302の「最も低い」層(例えば、詳細な抽象化(abstraction wise))は、低レベルの通信(例えば、WINDOWSメッセージ)304及び低レベルの共有メモリー306を含む。次の層は、例えば、スレッド、バッファー、処理、強制インテグリティ・レベル(MIC)など、物理ベースのアプリケーション・プログラム・インターフェース(API)308を含む。その上の次の層は、例えば、同一性、セキュリティー、メッセージ、資源所有権(resource ownership)310などのコンポーネントを含んでいる。図示された例における最上層は、連続的な非同期プログラミング312のほか、例えば、Com技術を非同期に模倣する「COMのような」非同期プログラミングなど、プロキシー及びインターフェースを含む。] 図3
[0028] 図4は、図2及び図3のコンポーネントにより実施されるようなフレーム処理402及びタブ処理404の例示的な実施例400の図である。フレーム処理402及びタブ処理404は、図1のフレーム処理及びタブ処理に相当してもよいし、相当しなくてもよい。] 図1 図2 図3 図4
[0029] 図4の例示的な実施例400は、図1のアプリケーションをコンポーネントへと分離して、それらのコンポーネント間のデータ及び制御の交換及び共有を管理する、分離インフラストラクチャーを示す。分離インフラストラクチャーの使用は、当該図によって示唆されるようなアプリケーションの疎結合の(loosely-coupled)コンポーネント化を容易にする。] 図1 図4
[0030] タブ処理404はコンテンツの「境界(boundary)」であり、複数のタブの使用を介してコンテンツが互いに分離されるように構成されてもよい。したがって、単一のタブ処理404が示されるが、多くのタブ処理が使用され得る。]
[0031] タブ処理404は、例えば、図3のブラウザー・アプリケーション302のようなアプリケーションに対する拡張を「含む」ために使用され得る。タブ処理404において「実行されている」コンテンツの例はタブ・スレッド406、408及び「iso」(すなわち、分離」)スレッド410として示される。スレッド(例えば、フレーム・スレッド406、408及び410)の各々は、以前に図2に関して説明されたようなコンポーネントとして示され、したがってそれぞれのWINDOWSメッセージループ、スレッド及び処理を含む。タブ処理404は、フレームに対して「処理中に(in-process)」実行してもよく、他の処理に対して「処理外で(out-of-process)」実行されてもよい。図示されないが、タブ処理404はまた、タブ処理404のコンテンツを「所有する」マネージャー・スレッドを含み得る。] 図2 図3
[0032] フレーム処理402は、タブ処理404の実行を管理するための機能を代表するマネージャー・スレッド406を含んでいる。例えば、フレーム処理402は、マネージャー・スレッド412を介して、タブ処理404が「どこで」実行されるべきかを決定してもよく、タブ処理404の寿命及び応答性を監視してもよく、エラーが生じた場合にタブ処理404を取り除き、取り替え、回復してもよい。マネージャー・スレッド406は、例えば、タブ処理404が「ハングした」(例えば、無限ループにつかまった)と判定し、したがって、以前にタブ処理によって実行されたコンテンツを検索するなど、タブ処理404を回復してもよい。このように、影響(affect)タブ処理404は、全アプリケーション、例えばこの例におけるブラウザー・アプリケーション、の再初期化なしに回復される。以前に図2に関して説明されたように、スレッドと処理との間で通信が行われてもよい。] 図2
[0033] したがって、フレーム処理において、寿命モニタリングなどのような管理機能を行う1つのマネージャー・スレッド(例えば、「権限(authority)」マネージャー・スレッド)が存在する。また、フレームのユーザー・インターフェース(例えば、戻るボタン、進むボタン、アドレス・バーなど)を提供してフレームに対するユーザー入力に応答することに関与する1つ以上のフレーム・スレッドが存在する。]
[0034] タブ処理において、フレームの要求においてタブ処理に分離コンポーネントを作成することに関与する1つのマネージャー・スレッド(フレーム処理において説明されたような権限マネージャー・スレッドではない)が存在する。また、タブ処理においてタブ・コンポーネントを実行し、また、タブのコンテンツ(例えば、HTMLページ)をレンダリングすること及びコンテンツについてのユーザー入力に応答することに関与する1つ以上のタブ・スレッドが存在する。]
[0035] さらに、フレーム又はタブ処理のいずれかにおいて実行し得る他のコンポーネントのための0以上のコンポーネント・スレッドがあってもよい。これらはタブではないが、同じ処理において分離されて、分離の利点を得るがその各々の処理を回転させるというパフォーマンス・ヒット(performance hit)を回避する。
例示的な手続
以下の説明は、以前に説明されたシステム及び装置を利用して実施することができる分離技術について記載する。手続の各々の態様は、ハードウェア、ファームウェアもしくはソフトウェア、又はその組み合わせにおいて実施されてもよい。手続は、1つ以上の装置によって行われる動作を指定し、それぞれのブロックによる動作を行うために図示された順序に必ずしも限定されないブロックの組として示される。以下の説明の一部では、図1−4に関して説明された例示的な環境について言及がなされる。] 図1
[0036] 図5は、コンテンツを分離する1つ以上の処理の実行が別の処理によって管理される例示的な実施例における手続500を図示する。ネットワークを介して受信されたコンテンツを含む1つ以上の処理の実行は、1つ以上の処理を含む単一のアプリケーションの別の処理によって管理される(ブロック502)。例えば、アプリケーション124は、フレーム処理126及び複数のタブ処理128(1)−128(T)を含むものとして示される。アプリケーション124は、例えば、ネットワークを介して受信されるコンテンツ118(c)、112(k)がタブ処理128(1)及び128(T)の使用を通じて出力され得る、制御の枠組み(構造)(例えば、進むボタン及び戻るボタン、アドレス・バーなど)を提供することに関与するフレーム処理126を備えたブラウザー・アプリケーション302に相当してもよい、したがって、ブラウザー・アプリケーション302のウィンドウは、コンテンツ112(I)−112(T)がタブ処理128(1)−128(T)を通じて出力されるフレーム処理126によって提供されるフレームを含んでもよい。ネットワークを介したコンテンツの受信が記載されるが、コンテンツはコンピューター読み取り可能な媒体を介するなどして、様々な他の方法で受け取られてもよい。] 図5
[0037] 資源は1つ以上の処理を実行するために使用されるよう指定される(ブロック504)。フレーム処理126は、例えば、ネットワーク106を介して受信されるコンテンツ112(1)を分離するために開始されるタブ処理128(1)によって使用されるために、ハードウェア資源(例えば、特定の共有メモリー)、ソフトウェア機能(例えば、ハンドル、ハンドル・スペース及び/又はハンドル範囲)などを指定してもよい。様々な他の例もまた、1つ以上の処理を実行するのに使用されるための信頼レベルを指定するように考慮される(ブロック506)。信頼レベルは、例えば、個人情報保護方針、コンテンツ112(1)のソース、コンテンツ112(1)に付属している証明書(例えば、自己署名されたもの又は認証機関からのもの)などに基づいて決定されてもよい。]
[0038] 管理はまた、反応がない場合に1つ以上の処理を終了することを含んでもよい(ブロック508)。フレーム処理126は、例えば、タブ処理128(1)−128(T)を周期的にポーリングしてもよい。応答が所定の量の時間内にタブ処理128(1)—128(T)の1つ以上から受け取られない場合、1つ以上のタブ処理128(1)−128(T)のそれぞれは終了してもよい。したがって、タブ処理128(1)−128(T)の1つ以上が機能しない(例えば、「ハングしている」、「ビジー状態である」など)場合であっても、この不具合は、フレーム処理126がまだ反応するように、フレーム処理(例えば、実施例における他のタブ処理)に対して「拡張」されない。したがって、様々な修正処置がとられてもよい。]
[0039] 例として、コンテンツは1つ以上の処理において回復されてもよい(ブロック510)。例えば、フレーム処理126は、コンテンツ112(1)がタブ処理において「どこで」(例えば、URL)得られたかを決定し、終了したタブ処理128(1)を再開し、コンテンツ112(1)を再度取得してもよい。したがって、以前にそのような例において直面したように、アプリケーションの全体の不具合を引き起こすことなく、コンテンツ112(1)は、自動的にユーザーの介在なしに回復されてもよい。
結論
本発明は、構造的特徴及び/又は方法論の動作に特有の言葉で記載されたが、添付の特許請求の範囲において定義された発明が記載された特定の特徴又は動作に必ずしも限定されないことが理解されるべきである。より正確に言えば、特定の特徴及び動作は特許請求された発明を実施する例示的な形式として開示されている。]
权利要求:

請求項1
アプリケーションを提供するように実行可能な命令を含む1つ以上のコンピューター読み取り可能な媒体であって、前記アプリケーションは、前記アプリケーションに機能を追加するためにインターネットを介して受信されたコンテンツを含む1つ以上の分離処理と、前記1つ以上の分離処理の実行を管理するマネージャー処理であって、それぞれの前記分離処理における実行されたコンテンツによる望ましくない動作の実行が前記マネージャー処理から分離され前記マネージャー処理によって制御される、マネージャー処理とを含む1つ以上のコンピューター読み取り可能な媒体。
請求項2
前記アプリケーションはインターネットを介してアクセス可能なコンテンツを通じてナビゲートするためのブラウザー・アプリケーションである請求項1に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項3
前記マネージャー処理は、前記ナビゲーションを実行するために選択可能な1つ以上の制御を提供するフレーム処理として構成され、前記1つ以上の制御は、戻るボタン、進むボタン及びアドレス・バーを含む請求項2に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項4
前記コンテンツはサイトに特有のコード又は拡張コードとして構成可能である第三者からのコードである請求項1に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項5
それぞれの前記分離処理が機能しない場合、前記マネージャー処理による前記1つ以上の分離処理の実行の管理は、それぞれの前記分離処理において実行されたコンテンツ及びその現在の実行されるコンテキストの回復を含む請求項1に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項6
前記マネージャー処理による前記1つ以上の分離処理の実行の管理は、それぞれの前記分離処理における前記実行されたコンテンツが反応するかどうかを判断することを含む請求項1に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項7
前記マネージャー処理による前記1つ以上の分離処理の実行の管理は、それぞれの前記分離処理におけるコンテンツが反応しない場合にそれぞれの前記分離処理を終了することを含む請求項6に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項8
前記マネージャー処理の実行は、前記マネージャー処理が前記1つ以上の分離処理に対して提供されない資源へのアクセスを備えるよう、同一性及び前記1つ以上の分離処理とは異なる信頼のレベルを備えている請求項1に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項9
前記マネージャー処理と前記1つ以上の分離処理との間の通信は、1つ以上の非同期メッセージの使用を含む請求項1に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項10
前記1つ以上の分離処理は第1の前記分離処理及び第2の前記分離処理を含み、前記第1及び第2の分離処理間の通信は、1つ以上の非同期メッセージの使用を含む請求項1に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項11
ブラウザー・アプリケーションを提供するように実行可能な命令を含む1つ以上のコンピューター読み取り可能な媒体であって、前記ブラウザー・アプリケーションは、ネットワークを介して受信されたコンテンツを含む1つ以上のタブ処理を有し、その結果、前記タブ処理の各々は、前記コンテンツの信頼性、意図又は信用度の判断に基づいて、それぞれの前記コンテンツを、互いに分離し、及び前記クライアント・システムの他の部分から分離し、前記ブラウザー・アプリケーションはさらに、前記1つ以上のタブ処理の実行を管理するフレーム処理を有し、前記少なくとも1つの前記タブ処理は、前記フレーム処理が少なくとも1つの前記タブ処理に含まれるコンテンツにとって利用可能でない1つ以上の資源にアクセスするように、前記フレーム処理より低い信頼レベルを割り当てられる、1つ以上のコンピューター読み取り可能な媒体。
請求項12
信頼性の判断は、前記コンテンツの意図又は信頼性に少なくとも部分的に基づく請求項11に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項13
別の前記タブ処理は、少なくとも1つの前記タブ処理と異なる信頼レベルを割り当てられ、その結果、前記他のタブ処理のコンテンツは、少なくとも1つの前記タブ処理に含まれるコンテンツにとって利用可能でない前記1つ以上の資源にアクセスする請求項11に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項14
別の前記タブ処理は、少なくとも1つの前記タブ処理とは異なる信頼レベルを割り当てられ、その結果、両方の前記タブ処理のコンテンツは、少なくとも1つの前記他のタブ処理に含まれるコンテンツにとって利用可能な1つ以上の資源に対するアクセスを有さない請求項11に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項15
前記コンテンツは、ブラウザー・アプリケーションの機能を拡張するように実行可能な第三者からの拡張コードを含む請求項11に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項16
それぞれの前記タブ処理における前記拡張コードの不具合が前記フレーム処理の不具合を引き起こさないように、それぞれの前記タブ処理における前記拡張コードの実行は前記フレーム処理から分離される請求項15に記載の1つ以上のコンピューター読み取り可能な媒体。
請求項17
反応しない場合に1つ以上の処理を終了するステップであって、前記1つ以上の処理が反応しない場合に他の処理が反応する状態のままであるよう、前記1つ以上の処理の実行は前記他の処理から分離される、1つ以上の処理を終了するステップと、前記終了された1つ以上の処理において前記コンテンツを回復するステップと、前記1つ以上の処理の同一性及びアクセス制御を制御し制限するステップとにより、前記1つ以上の処理を含む単一のアプリケーションの別の処理によって、ネットワークを介して受信されたコンテンツを含む1つ以上の処理の実行を管理するステップを含む方法。
請求項18
前記他の処理からの前記1つ以上の処理の実行の分離は、異なる前記処理における実行を通じて行われる請求項17に記載の方法。
請求項19
前記他の処理からの前記1つ以上の処理の実行の分離は、前記他の処理の1つ以上の非同期メッセージに対する前記1つ以上の処理の応答の失敗が前記他の処理の失敗を引き起こさないよう、前記1つ以上の非同期メッセージの使用を通じて実行される請求項17に記載の方法。
請求項20
前記コンテンツは拡張コードを含む請求項17に記載の方法。
类似技术:
公开号 | 公开日 | 专利标题
JP6377113B2|2018-08-22|Guiナビゲーション、プロパティシート、およびオートタブコンプリーションを含むサーバ構成を管理するためのシステムおよび方法
US10216618B1|2019-02-26|System and method for remotely debugging application programs
US9961129B2|2018-05-01|Business transaction correlation with client request monitoring data
US20180373554A1|2018-12-27|Hypervisor remedial action for a virtual machine in response to an error message from the virtual machine
US9244817B2|2016-01-26|Remote debugging in a cloud computing environment
EP2847686B1|2019-10-30|Enhanced document and event mirroring for accessing content
EP2815320B1|2018-05-16|Remote debugging as a service
US10158541B2|2018-12-18|Group server performance correction via actions to server subset
EP2815311B1|2019-03-27|Using an application cache to update resources of installed applications
EP3075111B1|2017-12-20|Method for providing a connection of a client to an unmanaged service in a client-server remote access system
US8739157B2|2014-05-27|System and method for managing cloud deployment configuration of an application
US9069606B2|2015-06-30|Autonomous application-level auto-scaling in a cloud
KR101916980B1|2018-11-08|웹-브라우저 기반 데스크탑 및 어플리케이션 원격화 솔루션 기법
US9135024B2|2015-09-15|Playing multimedia content at remote graphics display client
JP5214473B2|2013-06-19|ハードウェアデバイスなどのリソースを有する仮想マシンの移動システム
EP2302509B1|2012-09-26|Synchronization of server-side cookies with client-side cookies
US10162661B2|2018-12-25|Interdependent virtual machine management
CN104704468B|2018-04-27|Web应用程序的跨系统安装
US8266618B2|2012-09-11|Graphics hardware resource usage in a fully virtualized computing environment
US20160378554A1|2016-12-29|Parallel and Distributed Computing Using Multiple Virtual Machines
US7962566B2|2011-06-14|Optimized session management for fast session failover and load balancing
US8448174B2|2013-05-21|Information processing device, information processing method, and recording medium
US20130125215A1|2013-05-16|Remote application presentation over a public network connection
US7962552B2|2011-06-14|Borrow and give back of windows
US10073709B2|2018-09-11|Session monitoring of virtual desktops in a virtual machine farm
同族专利:
公开号 | 公开日
SG187462A1|2013-02-28|
JP5438688B2|2014-03-12|
CA2707970A1|2009-07-23|
WO2009091628A1|2009-07-23|
AU2009205600A1|2009-07-23|
BRPI0906438A2|2015-07-14|
KR20100110823A|2010-10-13|
MX2010007394A|2010-10-15|
RU2010129244A|2012-01-20|
EP2235643A1|2010-10-06|
RU2501075C2|2013-12-10|
MY155188A|2015-09-15|
EP2235643A4|2016-04-20|
US20090183155A1|2009-07-16|
CN101911056A|2010-12-08|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
JP2000181728A|1998-12-10|2000-06-30|Alcatel|コンピュ―タをオペレ―トするための方法、システム、コンピュ―タおよび交換機|
JP2008536217A|2005-04-07|2008-09-04|マイクロソフトコーポレーション|System and method for selecting a tab within a tabbed browser|
WO2007001679A2|2005-06-20|2007-01-04|Microsoft Corporation|Secure and stable hosting of third-party extensions to web services|
WO2007013280A1|2005-07-29|2007-02-01|Access Co., Ltd.|プラグインモジュール実行方法、ブラウザ実行方法、メーラ実行方法、プログラム、端末装置、及び、ページデータが記録されたコンピュータ読み取り可能な記録媒体|
WO2007046977A1|2005-10-12|2007-04-26|Microsoft Corporation|Discovery, qualification, and activation of software add-in components|
WO2007050363A1|2005-10-26|2007-05-03|Microsoft Corporation|Statically verifiable inter-process-communicative isolated processes|JP2013541091A|2010-09-14|2013-11-07|マイクロソフトコーポレーション|メッセージキュー管理|US5724559A|1993-10-28|1998-03-03|International Business Machines Corporation|Method for displaying ISPF panels in a VM non-ISPF environment|
US6442620B1|1998-08-17|2002-08-27|Microsoft Corporation|Environment extensibility and automatic services for component applications using contexts, policies and activators|
US6332210B1|1998-12-22|2001-12-18|Litton Systems, Inc.|Method of creating and using system-independent software components|
US7523466B2|1999-02-11|2009-04-21|Amdocs Software Systems Ltd.|Method and apparatus for customizing a marketing campaign system using client and server plug-in components|
US6654903B1|2000-05-20|2003-11-25|Equipe Communications Corporation|Vertical fault isolation in a computer system|
US6988135B2|2001-02-15|2006-01-17|International Business Machines Corporation|Method and system for specifying a cache policy for caching web pages which include dynamic content|
US7315892B2|2001-06-27|2008-01-01|International Business Machines Corporation|In-kernel content-aware service differentiation|
US6898733B2|2001-10-31|2005-05-24|Hewlett-Packard Development Company, L.P.|Process activity and error monitoring system and method|
US20030187991A1|2002-03-08|2003-10-02|Agile Software Corporation|System and method for facilitating communication between network browsers and process instances|
US7802234B2|2003-01-02|2010-09-21|Oracle International Corporation|Integration of context-sensitive runtime metrics into integrated development environments|
US7174545B2|2003-04-08|2007-02-06|The Boeing Company|Apparatus and method for producing display application software for embedded systems|
US7237223B2|2003-04-11|2007-06-26|The Boeing Company|Apparatus and method for real-time caution and warning and system health management|
US7694328B2|2003-10-21|2010-04-06|Google Inc.|Systems and methods for secure client applications|
US7418512B2|2003-10-23|2008-08-26|Microsoft Corporation|Securely identifying an executable to a trust-determining entity|
US20050137836A1|2003-12-23|2005-06-23|Clark Noel E.|Computer system architecture transformation|
US7774751B2|2003-12-26|2010-08-10|Yefim Zhuk|Knowledge-driven architecture|
US7890954B2|2004-12-22|2011-02-15|Argela Technologies|Method and system for communicating between application software|
US20060245096A1|2005-04-29|2006-11-02|Microsoft Corporation|Application framework phasing model|
US7676811B2|2006-03-23|2010-03-09|Microsoft Corporation|Ensuring thread affinity for interprocess communication in a managed code environment|
US7580946B2|2006-08-11|2009-08-25|Bizweel Ltd.|Smart integration engine and metadata-oriented architecture for automatic EII and business integration|CN102843394B|2011-06-22|2015-12-09|腾讯科技(深圳)有限公司|网络应用的框架装置及运行方法|
US9928083B2|2011-07-08|2018-03-27|Microsoft Technology Licensing, Llc|Tab trimming|
US9384101B2|2011-07-26|2016-07-05|Apple Inc.|Web application architecture|
CN103425225B|2012-05-16|2015-08-19|腾讯科技(深圳)有限公司|便携数据设备操作系统中的应用程序装置及其运行方法|
US9069766B2|2012-11-02|2015-06-30|Microsoft Technology Licensing, Llc|Content-based isolation for computing device security|
US9367211B1|2012-11-08|2016-06-14|Amazon Technologies, Inc.|Interface tab generation|
US9652130B1|2014-04-23|2017-05-16|Google Inc.|Auto-sizing an untrusted view|
US9747165B1|2014-04-23|2017-08-29|Google Inc.|Self-recovering application|
CN106484507B|2016-09-18|2019-11-29|天脉聚源传媒科技有限公司|一种应用线程的处理方法及装置|
RU2649796C1|2017-03-24|2018-04-04|Акционерное общество "Лаборатория Касперского"|Способ выявления категории данных с использованием API, применяемого при создании приложений для пользователей с ограниченными возможностями|
法律状态:
2011-12-03| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111202 |
2011-12-03| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111202 |
2013-05-30| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130530 |
2013-06-19| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130618 |
2013-09-04| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130903 |
2013-09-26| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130925 |
2013-10-25| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131024 |
2013-11-12| TRDD| Decision of grant or rejection written|
2013-11-15| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131114 |
2013-12-19| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131213 |
2013-12-20| R150| Certificate of patent or registration of utility model|Free format text: JAPANESE INTERMEDIATE CODE: R150 |
2015-04-17| S111| Request for change of ownership or part of ownership|Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
2015-04-27| R350| Written notification of registration of transfer|Free format text: JAPANESE INTERMEDIATE CODE: R350 |
2016-12-06| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2017-12-20| LAPS| Cancellation because of no payment of annual fees|
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]